import {message} from 'antd';
import {formatMessage} from './intl';
import {packingBusinessType} from '../Enum';

export const newOrUpdateOrderValidator = (data, details) => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.packingType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.packingType',
            defaultMessage: '包装类型'
        }));
    if(!data || !data.length)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.length',
            defaultMessage: '长度'
        }));
    if(!data || !data.width)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.width',
            defaultMessage: '宽度'
        }));
    if(!data || !data.height)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.height',
            defaultMessage: '高度'
        }));
    if(!data || !data.volume)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.volume',
            defaultMessage: '体积'
        }));
    if(!data && !data.netWeight)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.netWeight',
            defaultMessage: '净重'
        }));
    if(!data || !data.grossWeight)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.grossWeight',
            defaultMessage: '毛重'
        }));
    
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(details.length <= 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.detailRequired',
            defaultMessage: '整车包装箱单备件清单不能为空'
        })}`);
        return false;
    }
    const emptyDetailErrors = [];
    if(details.some(d => !d.kdClaim) && data.businessType === packingBusinessType.KD索赔)
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.kdClaim',
            defaultMessage: 'KD索赔单号'
        }));
    if(details.some(d => !d.partCode))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.partCode',
            defaultMessage: '备件编号'
        }));
    if(details.some(d => !d.partName))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.partName',
            defaultMessage: '备件名称'
        }));
    if(details.some(d => !d.partEngName))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.partEngName',
            defaultMessage: '备件英文名称'
        }));
    if(details.some(d => !d.totalPrice))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.quantity',
            defaultMessage: '数量'
        }));
    if(details.some(d => !d.price))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.price',
            defaultMessage: '单价'
        }));
    if(emptyDetailErrors.length > 0) {
        message.warning(`${emptyDetailErrors.join('，')}${formatMessage({
            id: 'validator.detail.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    return true;
};